package com.lesama.listener;

import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

/*
* 事件冲突：
* 当Pane中存在按钮组件时，窗体中所有的事件的焦点都在按钮触发的事件，于是按下空格时，只会触发按钮的事件监听
* 可以通过button.setFocusable(false); // 取消事件聚焦
* */
public class ConflictTips {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setTitle("事件冲突");
        frame.setSize(800, 500);
        frame.setLayout(null);
        JButton button = new JButton("按钮");
        button.addActionListener(e -> System.out.println("按钮事件触发"));
        button.setFocusable(false); // 取消事件聚焦
        button.setBounds(50, 50, 100, 100);
        frame.getContentPane().add(button);
        frame.addKeyListener(new KeyListener() {
            @Override
            public void keyTyped(KeyEvent e) {

            }

            @Override
            public void keyPressed(KeyEvent e) {
                System.out.println("键盘事件触发");
            }

            @Override
            public void keyReleased(KeyEvent e) {

            }
        });
        frame.setVisible(true);
    }
}
